; TEST-ARGS: -disallow-ub-exploitation
; SKIP-IDENTITY

define void @src(ptr %in) null_pointer_is_valid {
  %alloca = alloca [16 x i8], align 4
  call void @llvm.memcpy(ptr %alloca, ptr %in, i64 16, i1 false)
  ret void
}

define void @tgt(ptr %in) null_pointer_is_valid {
  %gep = getelementptr inbounds i8, ptr %in, i64 4
  load i32, ptr %gep, align 1
  ret void
}

declare void @llvm.memcpy(ptr, ptr, i64, i1)
